using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using QLNhaSach.BUS.DTO;
using QLNhaSach.DAO;

namespace QLNhaSach.BUS
{
    public enum NhanVienBanSachBUSResult
    {
        OK,
        ERROR
    }
        
    class NhanVienBanSachBUS
    {
        //Hien thi thong tin ca nhan
        public static DataTable HienThiTTCN(NhanVienDTO nv)
        {
            return NhanVienDAO.HienThiTTCN(nv);
        }


        //Thay doi thong tin ca nhan
        public static NhanVienBanSachBUSResult ThayDoiTTCN(NhanVienDTO nv)
        {
            if (NhanVienDAO.ThayDoiTTNV(nv))
                return NhanVienBanSachBUSResult.OK;
            return NhanVienBanSachBUSResult.ERROR;
        }


        //Tim sach
        public static DataTable TimSach(string sql)
        {
            return SachDAO.TimKiemSachNhieuBang(sql);
        }

        //Danh sach tat ca sach
        public static DataTable DSSach()
        {
            return SachDAO.DSSach();
        }

        //Them hoa don
        public static NhanVienBanSachBUSResult ThemHoaDon(HoaDonDTO hd)
        {
            if (HoaDonDAO.InsertHD(hd))
                return NhanVienBanSachBUSResult.OK;
            return NhanVienBanSachBUSResult.ERROR;
        }

        //Lay ma hoa don cuoi cung
        public static DataTable LayMaHD()
        {
            return HoaDonDAO.LayMaHD();
        }

        //Lay mot cuon sach
        public static DataTable LaySach(int maSach)
        {
            return SachDAO.LaySach(maSach);
        }

        //Them chi tiet hoa don
        public static NhanVienBanSachBUSResult ThemCTHD(ChiTietHoaDonDTO cthd)
        {
            if (ChiTietHoaDonDAO.ThemCTHD(cthd))
                return NhanVienBanSachBUSResult.OK;
            return NhanVienBanSachBUSResult.ERROR;
        }

        //Lay danh sach sach trong mot hoa don
        public static DataTable LaySachTrongHoaDon(int maHD)
        {
            return NhanVienBanSachDAO.LaySachTrongHoaDon(maHD);
        }

        //Xoa mot chi tiet hoa don
        public static NhanVienBanSachBUSResult XoaChiTietHD(ChiTietHoaDonDTO cthd)
        {
            if (NhanVienBanSachDAO.XoaChiTietHD(cthd))
                return NhanVienBanSachBUSResult.OK;
            return NhanVienBanSachBUSResult.ERROR;
        }

        //Xoa tat ca chi tiet hoa don cua mot hoa don
        public static NhanVienBanSachBUSResult XoaAllChiTietHD(ChiTietHoaDonDTO cthd)
        {
            if (ChiTietHoaDonDAO.XoaCTHD(cthd))
                return NhanVienBanSachBUSResult.OK;
            return NhanVienBanSachBUSResult.ERROR;
        }

        //Xoa mot hoa don
        public static NhanVienBanSachBUSResult XoaHoaDon(HoaDonDTO hd)
        {
            if (HoaDonDAO.XoaHoaDon(hd))
                return NhanVienBanSachBUSResult.OK;
            return NhanVienBanSachBUSResult.ERROR;
        }

        //Cap nhap tong tien cua hoa don
        public static NhanVienBanSachBUSResult CapNhapTongTien(HoaDonDTO hd)
        {
            if (NhanVienBanSachDAO.CapNhapTongTien(hd))
                return NhanVienBanSachBUSResult.OK;
            return NhanVienBanSachBUSResult.ERROR;
        }

        //Cap nhap cong no khach hang
        public static NhanVienBanSachBUSResult CapNhapCongNo(KhachHangDTO kh)
        {
            if (KhachHangDAO.CapNhapCongNo(kh))
                return NhanVienBanSachBUSResult.OK;
            return NhanVienBanSachBUSResult.ERROR;
        }

        //Lay thong tin cua mot khach hang
        public static DataTable XemCongNo(KhachHangDTO kh)
        {
            return KhachHangDAO.XemCongNoKH(kh);
        }
    }
}
